#ifndef SHADER_COMMON  
#define SHADER_COMMON
    
//inline float2 repeat(float2 uv, float4 _SpriteRect_ST)
//{  
//    {
//		float temp = uv.x - _SpriteRect_ST.z;
//		float s = sign(temp);
//		if(s == 0)
//		{
//			s = 1;
//		}
//		
//		float t = 1;
//		if(s > 0)
//		{
//			t = 0;
//		}
//		temp = s * fmod(abs(temp), _SpriteRect_ST.x) + t * _SpriteRect_ST.x;
//		uv.x = temp + _SpriteRect_ST.z;
//	}
//	{
//		float temp = uv.y - _SpriteRect_ST.w;
//		float s = sign(temp);
//		if(s == 0)
//		{
//			s = 1;
//		}
//		
//		float t = 1;
//		if(s > 0)
//		{
//			t = 0;
//		}
//		
//		temp = s * fmod(abs(temp), _SpriteRect_ST.y) + t * _SpriteRect_ST.y;
//		uv.y = temp + _SpriteRect_ST.w;
//	}
//	return uv;
//}  

  
inline float2 repeat(float2 uv, float4 _SpriteRect_ST)
{  
	float2 temp = uv.xy - _SpriteRect_ST.zw;
	temp = fmod(fmod(temp, _SpriteRect_ST.xy) + _SpriteRect_ST.xy, _SpriteRect_ST.xy);
	return temp + _SpriteRect_ST.zw;
}   
#endif 
